package com.example.fileuploaddownload.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.FieldFill;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 文件分片实体类
 * 用于在数据库中存储文件分片的信息
 */
@Data
@TableName("file_chunk")
public class FileChunk implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 分片ID，主键
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 关联的文件ID
     */
    @TableField("file_id")
    private Long fileId;

    /**
     * 文件标识符
     */
    @TableField("identifier")
    private String identifier;

    /**
     * 分片索引
     */
    @TableField("chunk_index")
    private Integer chunkIndex;

    /**
     * 分片大小（字节）
     */
    @TableField("chunk_size")
    private Long chunkSize;

    /**
     * 分片临时存储路径
     */
    @TableField("chunk_path")
    private String chunkPath;

    /**
     * 分片MD5值（可选）
     */
    @TableField("md5")
    private String md5;

    /**
     * 创建时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;
}